/***************************************************************************
    SCC, Simplfied c++ paser test version 0.2
    Copyright (C) 2007 by phylin   
    phylin11@gmail.com   


Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006 2007Free Software Foundation, Inc.

This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
                                             
 ***************************************************************************/

1  The difference between scc grammar and uaual c++
 
 *
  The pointer is disabled , no more pointer in scc , operations 
  needs pointers must be hidden in the library classes .
  In test version0.2, array is disabled, but next viosion will supply. 
  **
  Class inheritance limited to only public access privilege .friend member 
  is disabled. Since it is not very often used ,struct access privilege
  control is disabled too. 
  ***
  The include head file names can only be the allowed file names defined
  by administrator, I have thought of user can include his own heads
  with a ".scch" ended, but there are some problems ,so currently you
  have to write all code in the same file, this is a short coming.
  ****
  Tamplate ,namespace define is not available yet.
   
  *****test version 0.2 notes:
  the pre-defined class you can use is "string" ,"cgi"(with GNU/cgicc
  package installed), but all these doesn't reaches the scc library's 
  request(below),means it isn't safe for public use and can only be used 
  as a test.  pre-defined namespace is "std" and "cgicc".
  
  
2  About the scc library

  The scc library is considered to be used by the public http 
  web server. so there are some most important security cautions:
  
   *I think the library function call is as simple as better.
   It offers the only necessary public functions in most simple way,
   and It should be able to catch exceptions itself.
   (The best way might be one class per lib, for it's easier for 
    using and checking. )
          
   **The public function Parameters should not be pointers. 
   The return values should not be pointer and the best 
   is not an object,too.
   
   ***The library should be designed carefully to avoid any 
   other possible security problems.   
  
   If you think in this way still can not reach the safe use of c++ ,
   please tell me.
   
   For sorry now , there is not a list to tell which library reaches
   the request,and I'm going to find out or change some standard 
   libraries next step. 
   
   <If anyone would like do this, he is wellcome.
   There is a important thing : the more scc libraries ,the more scc 
   is used, or just to say c++ is used, and the more libraries availble.
   c++ library is of cause more efficent.>
  
   
3  How to use scc in server side pages 
  
  It can be embeded into html files just like php or java do .

  like:
        	 <?scc     ....scc code...        ?>  
  or   		 <?        ....scc code...        ?>
  
  "scc code" here is at least one line in c++ grammar .
  "main" funtion is not needed in scc , because the default action is 
  to output the html file line by line.
  You can put your "#include .."  or class ,funtion struct etc.definitions   
  anywhere before use. There is an example.scc to show this.
  
  The file name should be *.scc. After run "scc *.scc" ,there are two files
  created: a binary file and  a pure html file. The binary file can be 
  cxcuted by httpserver as cgi, and it outputs the pure html file with 
  any other things you wrote in the scc file.   
    
4  scc keywords 

   The  avalible keyword in scc0.2 is list here: 

  and        const      float       using        namespace
and_eq        for        or         struct        virtual
           friend        or_eq      switch         void
  auto      default      goto        private    
bitand          if       protected          	   wchar_t
 bitor          do       public       throw   	   while
  bool       double       int         register    xor
 break        long        try         true	   xor_eq
  case         else       return       typedef
 catch         enum       short        
 char        inline       signed       
 class       extern        not          sizeof       
 compl        false       not_eq        static       unsigned

  The usages of above keywords are the same as it in c++.

  The most different is there are no new, delete ,template keywords.
  
  Other keywords might be added if necessary.
  If there are any problem or good ideas ,please tell me.




      
 









    
  

       


   

   

